A short description of the post.
packages = c('maptools', 'sf', 'raster', 'spatstat', 'tmap', 'tidyverse')
for (p in packages){
if(!require(p, character.only = T)){
install.packages(p)
}
library(p,character.only = T)
}
mpsz_sf <- st_read(dsn = 'data/shapefile', layer = 'MP14_SUBZONE_WEB_PL')
Reading layer `MP14_SUBZONE_WEB_PL' from data source
`C:\wlwong2018\IS415 Blog\_posts\2021-09-13-in-class-exercise-5\data\shapefile'
using driver `ESRI Shapefile'
Simple feature collection with 323 features and 15 fields
Geometry type: MULTIPOLYGON
Dimension: XY
Bounding box: xmin: 2667.538 ymin: 15748.72 xmax: 56396.44 ymax: 50256.33
Projected CRS: SVY21
childcare <- read_rds("data/rds/childcare.rds")
CHAS <- read_rds("data/rds/CHAS.rds")
Lat and Lng should be in numeric data type. The coordinate fields seem to be in decimal degree. Hence wgs referencing system is assumed.CHAS_sf <- st_as_sf(CHAS,
coords = c("X_COORDINATE", "Y_COORDINATE"),
crs = 3414)
Note: st_as_sf() accept coordinates in character data type.
lat long in decimal degrees
childcare_sf <- st_as_sf(childcare,
coords = c("Lng", "Lat"),
crs = 4326) %>%
st_transform(crs = 3414)
tmap_mode("view")
tm_shape(childcare_sf) +
tm_dots(alpha = 0.4,
col = "blue",
size = 0.05) +
tm_shape(CHAS_sf) +
tm_dots(alpha = 0.4,
col = "red",
size = 0.05)
childcare <- as_Spatial(childcare_sf)
CHAS <- as_Spatial(CHAS_sf)
mpsz <- as_Spatial(mpsz_sf)
childcare_sp <- as(childcare, "SpatialPoints") # data will be dropped.
CHAS_sp <- as(CHAS, "SpatialPoints") # data will be dropped.
mpsz_sp <- as(mpsz, "SpatialPolygons") # data will be dropped.
childcare_ppp <- as(childcare_sp, "ppp")
CHAS_ppp <- as(CHAS_sp, "ppp")
childcare_ppp_jit <- rjitter(childcare_ppp,
retry = TRUE,
nsim = 1,
drop = TRUE)
any(duplicated(childcare_ppp_jit))
[1] FALSE
CHAS_ppp_jit <- rjitter(CHAS_ppp,
retry = TRUE,
nsim = 1,
drop = TRUE)
any(duplicated(CHAS_ppp_jit))
[1] FALSE
Note:
pg <- mpsz[mpsz@data$PLN_AREA_N == "PUNGGOL",]
pg_sp <- as(pg, "SpatialPolygons")
pg_owin <- as(pg_sp, "owin")
childcare_pg <- childcare_ppp_jit[pg_owin]
CHAS_pg <- CHAS_ppp_jit[pg_owin]
plot(childcare_pg)

# L_childcare <- envelope(childcare_pg,
# Lest,
# nsim=99,
# rank=1,
# global = TRUE)